using UnityEngine;
using System.Collections;

public abstract class State<T> where T : StateBehaviour<T>
{
    public abstract void OnEnterState(T behaviour);
    public abstract void OnUpdateState(T behaviour);
    public abstract void OnFixedUpdateState(T behaviour);
    public abstract void OnExitState(T behaviour);

    public abstract void OnCollisionState(T behaviour, Collision other);
    public abstract void OnTriggerState(T behaviour, Collider other);
}
